<template>
  <div>
    <button @click="exportExcel">导出Excel</button>
  </div>
</template>

<script>
// 1. 将 xlsx库 内所有组件都进行导入：
// " * as xxx " →才是正确写法！！！！！
import * as XLSX from 'xlsx'
export default {
  data() {
    return {}
  },
  methods: {
    // 2. 创建[导出Excel]的方法：
    exportExcel() {
      // (模拟) ①实际开发中规定的表头格式顺序：
      // const tableHeaderKeys = ['name', 'sex', 'married', 'age']

      // 3. (模拟)创建数据集：
      const data = [
        ['姓名', '年龄', '性别', '婚配'],
        ['Alice', 20, '女', '已婚'],
        ['Bob', 25, '男', '未婚'],
        ['Charlie', 30, '女', '未婚']
      ];

      // ②根据目标表头格式, 重新xx：
      /* const newList = data.map(obj => {
        const newObj = {}
        tableHeaderKeys.forEach(keyStr => {
          newObj[keyStr] = obj[keyStr]
        })

        return newObj
      }); */

      // 4. 创建一个新的工作簿：
      const wb = XLSX.utils.book_new();

      // 5. 将数据写入到 sheet 表格上：
      // 分析：( aoa_xxx：二维数组 ) | (json_xxx：对象数组)
      const ws = XLSX.utils.json_to_sheet(data);

      // 6. 将工作表(格)上的数据，加载工作簿中：
      // 传入参数分析：工作簿 →工作表 →自定义文件名
      XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');

      // ③改写表头：
      // XLSX.utils.sheet_add_aoa(wb, [newList], { origin: 'A1' })

      // 7. 导出数据：
      XLSX.writeFile(wb, 'data.xlsx');
    }
  }
}
</script>

<style>

</style>